clc;clear;close all;

x = [1, 2, 3, 4, 5];  % 自变量
y = [1.5, 2.5, 3.5, 4.5, 5.5];  % 因变量

% 初始参数估计
initialParams = [1, 0.1];  % 例如，初始猜测a=1, b=0.1
 
% 调用lsqcurvefit
options = optimoptions('lsqcurvefit', 'Algorithm', 'levenberg-marquardt');
[params, resnorm, residual, exitflag, output] = lsqcurvefit(myModel, initialParams, x, y, [], [], options);

fprintf('拟合参数: a = %.2f, b = %.2f\n', params(1), params(2));
fprintf('残差平方和: %f\n', resnorm);

figure;
plot(x, y, 'bo');  % 原始数据点
hold on;
fittedY = myModel(x, params(1), params(2));  % 使用最佳参数计算拟合值
plot(x, fittedY, 'r-');  % 拟合曲线
legend('原始数据', '拟合曲线');
title('非线性最小二乘拟合');
xlabel('x');
ylabel('y');
hold off;

